<?php

namespace SGBD\Controller;

class JoueursController extends \SGBD\AbstractController
{
    public function indexAction()
    {
        // Params
        $saison = $this->getSaisonParam();
        $selectedClub = $this->app->request()->get('club');

        $clubs = $this->db->getAllClubs('Nom_Club',false);
        if ($selectedClub === NULL) {
            // TODO: s'il n'y a pas de clubs?
            $selectedClub = $clubs[0]['Nom_Club'];
        }

        $equipes = $this->db->getAllEquipesDeClub($selectedClub);

        foreach ($equipes as &$e) {
            $e['_joueurs'] = $this->db->getAllJoueursParEquipe(
                $e['Numero_Equipe'], $saison
            );

        }

        $this->app->render(
            'info/joueurs/index.html',
            array(
                'selectedClub' => $selectedClub,
                'clubs' => $clubs,
                'activeSaison' => $saison,
                'equipes' => $equipes
            )
        );
    }

    public function viewAction($numeroPersonne)
    {
        $this->app->render(
            'info/joueurs/view.html',
            array(
                'joueur' => $this->db->getJoueur($numeroPersonne),
                'historique' => $this->db->getHistoriqueJoueur($numeroPersonne)
            )
        );
    }

    public function newAction($numeroEquipe)
    {
        $equipe = $this->db->getEquipe($numeroEquipe);
        $this->app->render(
            'info/joueurs/new.html',
            array('equipe' => $equipe)
        );
    }

    public function createAction($numeroEquipe)
    {
        $post = $this->app->request()->post();

        $joueur = $this->db->createJoueur(
            $post['Numero_Licence'], $post['Nom'], $post['Prenom'],
            $post['Adresse'], $post['Date_Naissance'],$numeroEquipe
        );

        // Si tout va bien...
        $url = $this->app->urlFor(
            'equipe_view', array('numero_equipe' => $numeroEquipe)
        );
        $this->app->redirect($url);
    }

    public function editAction($numeroPersonne) {
        $joueur = $this->db->getJoueur($numeroPersonne);
        $equipes = $this->db->getAllEquipes('Nom_Club, Nom_Categorie, Nom_Equipe', FALSE);
        $equipes = $this->equipesToOptions($equipes);
        $this->app->render(
            'info/joueurs/new.html',
            array('joueur' => $joueur, 'equipes' => $equipes)
        );
    }

    public function updateAction($numeroPersonne) {
        $post = $this->app->request()->post();
        $joueur = $this->db->getJoueur($numeroPersonne);
        $this->db->updateJoueur(
            $post['Numero_Licence'],
            $numeroPersonne, $post['Nom'], $post['Prenom'],
            $post['Adresse'], $post['Date_Naissance'],
            !$joueur || $joueur['Numero_Equipe'] != $post['Numero_Equipe']
            ? $post['Numero_Equipe']
            : FALSE
        );
        $url = $this->app->urlFor('joueur_view', array('numero_personne' => $numeroPersonne));
        $this->app->redirect($url);
    }

    public function deleteAction($numeroPersonne) {
        $this->db->deleteJoueur($numeroPersonne);
        $this->app->redirect($this->app->urlFor('joueurs_index'));
    }

}